package com.github.paicoding.forum.api.model.vo.notify;

import com.github.paicoding.forum.api.model.enums.NotifyTypeEnum;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.context.ApplicationEvent;


@Getter
@Setter
@ToString
@EqualsAndHashCode(callSuper = true)
// ApplicationEvent 是 Spring 框架提供的事件基类
// 所有自定义 Spring 事件都需要继承它，以便融入 Spring 的事件发布 / 监听机制
public class NotifyMsgEvent<T> extends ApplicationEvent {

    // 通知类型（枚举）
    private NotifyTypeEnum notifyType;

    // 通知内容（泛型，可携带任意类型数据）
    private T content;


    public NotifyMsgEvent(Object source, NotifyTypeEnum notifyType, T content) {
        super(source);
        this.notifyType = notifyType;
        this.content = content;
    }


}
